<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0   
    Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">    
<ui:composition xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:p="http://primefaces.org/ui">

    <p:tabView dynamic="true" >  
        <p:tab title="Pesquisar"> 
            <h:form id="buscar_form" acceptcharset="utf-8"> 

                <p:messages showDetail="true" autoUpdate="false"  id="msg" />
                <fieldset>
                    <legend>Informe o Documento</legend>
                    <h:panelGrid columns="2"  border="0" styleClass="textAlignRight" columnClasses="textAlignRight">
                        <h:outputLabel value="Pessoa:"/>
                        <p:selectOneRadio id="cpf-cnpj" value="#{managerConsultarPessoa.controle}"
                                          label="Selecione um item">
                            <f:selectItem itemLabel="Fisica"  itemValue="#{true}" />
                            <f:selectItem itemLabel="Juridica"  itemValue="#{false}"/>
                            <p:ajax update="@form, nome_fisica, nome_juridica, cpf_pessoa, cnpj_pessoa" event="change"/>

                        </p:selectOneRadio>
                        <h:outputLabel value="Nome:" rendered="#{managerConsultarPessoa.controle ? true : false}"/>
                        <p:inputText value="#{managerConsultarPessoa.nome}"   
                                     rendered="#{managerConsultarPessoa.controle ? true : false}"
                                     id="nome_fisica" size="50"/>

                       
                        <h:outputLabel value="Cpf:" rendered="#{managerConsultarPessoa.controle ? true : false}"/>  
                        <p:inputMask value="#{managerConsultarPessoa.variavel}"  
                                     rendered="#{managerConsultarPessoa.controle ? true : false}"
                                     id="cpf_pessoa" mask="999.999.999-99"  maxlength="11" style="width: 165px"/>

                        <h:outputLabel value="Nome:" rendered="#{managerConsultarPessoa.controle ? false : true}"/>
                        <p:inputText value="#{managerConsultarPessoa.nome}"   
                                     rendered="#{managerConsultarPessoa.controle ? false : true}"
                                     id="nome_juridica" size="50"/>

                        <h:outputLabel value="Cnpj: " rendered="#{managerConsultarPessoa.controle ? false : true}"  />  
                        <p:inputMask value="#{managerConsultarPessoa.variavel}" 
                                     rendered="#{managerConsultarPessoa.controle ? false : true}"
                                     id="cnpj_pessoa" mask="99.999.999/9999-99" maxlength="14" style="width: 165px"/>


                    </h:panelGrid> 
                </fieldset>
                <div class="buttonAction">
                    <p:commandButton icon="ui-icon-search" id="bt_pesquisar" value="Buscar" actionListener="#{managerConsultarPessoa.pesquisarPessoa()}" update="pessoaTable, msg, @form, cpf_pessoa, cnpj_pessoa" />
                    <p:commandButton icon="ui-icon-arrowreturnthick-1-w" actionListener="#{managerConsultarPessoa.reinit()}"
                                     value="Cancelar" onclick="dlg.hide()" /> 
                </div>
                <p:messages redisplay="false" autoUpdate="true" />

                <p:dataTable id="pessoaTable" var="pessoa" value="#{managerConsultarPessoa.pessoas}" 
                             paginator="true" rows="5"
                             rowIndexVar="rowid"
                             rowKey="#{pessoa.id}"
                             paginatorPosition="bottom"
                             paginatorTemplate="{PageLinks}  ~ #{managerConsultarPessoa.pessoas.size()} Resultados"  >     
                    <f:facet name="header">  
                        Resultado Clientes 
                    </f:facet>
                    <p:column style="width:20px;"> 
                        <p:commandButton id="clienteResg" icon="novo" 
                                         style="width:20px; height:20px;"
                                         actionListener="#{managerProtocolo.cliente(pessoa)}" 
                                         update="@form :tabView:protocolo:interessado"/> 
                    </p:column>   
                    <p:column style="min-width:420px;">  
                        <f:facet name="header" >   
                            Nome 
                        </f:facet>  
                        <h:outputText value="#{pessoa.nome}" />

                    </p:column>
                    <p:column style="width:200px;" headerText="Documento"> 
                        <h:outputText value="#{pessoa.cpf eq null ? pessoa.cnpj : pessoa.cpf}"  />
                    </p:column>
                    <p:column style="width:200px;">  
                        <f:facet name="header" >   
                            Contato
                        </f:facet>  
                        <h:outputText value="#{pessoa.endereco.celular}" />  
                    </p:column>


                </p:dataTable>  

            </h:form>
        </p:tab>
        <p:tab title="Cadastrar">  

            <h:form id="incluir_form" acceptcharset="utf-8"> 

                <p:messages id="msg"/>
                <p:focus for="nome_pessoa"/>
                <p:selectOneRadio id="cpf-cnpj" value="#{managerPessoa.controle}"
                                  label="Selecione um item">
                    <f:selectItem itemLabel="Pessoa Fisica"  itemValue="#{true}"/>
                    <f:selectItem itemLabel="Pessoa Juridica"  itemValue="#{false}"/>
                    <p:ajax update="@form, prof_pessoa, rg_pessoa, cpf_pessoa, cnpj_pessoa, estado_pessoa" event="change"/>
                </p:selectOneRadio>
                <br/>

                <fieldset>
                    <legend>Dados Pessoais</legend>
                    <h:panelGrid columns="2"  border="0" styleClass="textAlignRight" columnClasses="textAlignRight"> 
                        <h:outputLabel value="Nome: "/>

                        <p:inputText value="#{managerPessoa.pessoa.nome}"
                                     id="nome_pessoa"
                                     required="true" size="50" 
                                     requiredMessage="O campo nome deve ser preenchido "/>
                        
                         <h:outputLabel value="Data Nasc.: " rendered="#{managerPessoa.controle ? true : false}"/>
                            <p:calendar id="prefix" value="#{managerPessoa.pessoa.dataNasc}"
                                                rendered="#{managerPessoa.controle ? true : false}"
                                                mode="popup" pattern="dd/MM/yyyy" showOn="button"
                                                locale="pt" showButtonPanel="true" navigator="true" 
                                                size="17"/>
                        <h:outputLabel value="Rg:" rendered="#{managerPessoa.controle ? true : false}"/>  
                        <p:inputText value="#{managerPessoa.pessoa.rg}" 
                                     rendered="#{managerPessoa.controle ? true : false}"
                                     id="rg_pessoa" maxlength="11" style="width: 165px"/>
                        <h:outputLabel value="Cpf:" rendered="#{managerPessoa.controle ? true : false}"/>  
                        <p:inputMask value="#{managerPessoa.pessoa.cpf}" 
                                     rendered="#{managerPessoa.controle ? true : false}"
                                     required="#{managerPessoa.controle ? true : false}"
                                     id="cpf_pessoa" requiredMessage="O campo cpf deve ser preenchido " mask="999.999.999-99"   maxlength="11" style="width: 165px"/> 
                        <h:outputLabel value=" Sexo: " rendered="#{managerPessoa.controle ? true : false}" />  
                        <p:selectOneRadio id="sexo" value="#{managerPessoa.pessoa.sexo}"  
                                          label="Sexo" rendered="#{managerPessoa.controle ? true : false}">  
                            <f:selectItems value="#{managerPessoa.selectItemSexo()}"/>                     
                        </p:selectOneRadio>
                        <h:outputLabel value="EstadoCivil: " rendered="#{managerPessoa.controle ? true : false}" />  
                        <p:selectOneMenu id="estado_pessoa"  style="width: 165px" value="#{managerPessoa.pessoa.estadocivil}"  
                                         label="Estado Civil" rendered="#{managerPessoa.controle ? true : false}">  
                            <f:selectItems value="#{managerPessoa.selectItemEstadoCivil()}"/>                   
                        </p:selectOneMenu> 
                        <h:outputLabel value="Cnpj: " rendered="#{managerPessoa.controle ? false : true}"  />  
                        <p:inputMask value="#{managerPessoa.pessoa.cnpj}" 
                                     rendered="#{managerPessoa.controle ? false : true}"
                                     required="#{managerPessoa.controle ? false : true}"
                                     id="cnpj_pessoa" mask="99.999.999/9999-99" maxlength="14" style="width: 165px"/>
                        <h:outputLabel value="Profissão:" rendered="#{managerPessoa.controle ? true : false}"/>  
                        <p:inputText value="#{managerPessoa.pessoa.profissao}" 
                                     rendered="#{managerPessoa.controle ? true : false}"
                                     required="false"
                                     id="prof_pessoa" style="width: 165px"/>
                    </h:panelGrid>  
                </fieldset> 
                <br/>
                <fieldset id="fildendereco">
                    <legend>Dados do Endereço</legend> 
                    <h:panelGrid columns="4"  border="0" styleClass="textAlignRight" columnClasses="textAlignRight">

                        <h:outputLabel value="Tipo Log: "/> 
                        <p:selectOneMenu id="tipo_logradouro"  style="width: 165px" value="#{managerPessoa.endereco.tipo_logradouro}"  
                                         label="Tipo ">  
                            <f:selectItems value="#{managerPessoa.selectItemTipoLogradouro()}"/>                   
                        </p:selectOneMenu> 
                        <h:outputText value="Cidade: " for="cidade"/>
                        <p:autoComplete id="cidadeEstado" value="#{managerPessoa.endereco.cidade}"
                                        completeMethod="#{managerEndereco.completeCidade}"   
                                        var="cidadeEstado"  required="true" scrollHeight="200"
                                        requiredMessage="O campo cidade deve ser preenchido"
                                        itemLabel="#{cidadeEstado.nom_cidade} - #{cidadeEstado.cod_estado.nom_estado}"
                                        itemValue="#{cidadeEstado}" converter="cidadeConverter" forceSelection="true"
                                        converterMessage="Erro, verifique a cidade" minQueryLength="3" maxResults="10"
                                        dropdown="true"> 
                        </p:autoComplete>
                        <h:outputLabel value="Logradouro: "/>
                        <p:inputText  id="logradouro" value="#{managerPessoa.endereco.logradouro}" size="45" required="true" requiredMessage="O campo logradouro deve ser preenchido"/>
                        <h:outputLabel value="Bairro: "/>
                        <p:inputText  id="bairro" value="#{managerPessoa.endereco.bairro}" size="45"/>
                        <h:outputLabel value="Número: "/>
                        <p:inputText  id="numero" value="#{managerPessoa.endereco.numero}" />
                        <h:outputLabel value="CEP: "/>
                        <p:inputMask value="#{managerPessoa.endereco.cep}" mask="99.999-999" id="cep" />
                        <h:outputLabel value="Telefone: "/>
                        <p:inputMask value="#{managerPessoa.endereco.telefone}" mask="99-9999-9999" id="telefone" />
                        <h:outputLabel value="Celular: "/>
                        <p:inputMask value="#{managerPessoa.endereco.celular}" mask="99-9999-9999" id="celular" />

                    </h:panelGrid>

                    <br/>   
                </fieldset>
                <div class="buttonAction">
                    <p:commandButton id="submit" actionListener="#{managerPessoa.salvar()}" onsuccess="addPessoa()"
                                     icon="ui-icon-disk" value="Salvar" update="@form"/>
                    <p:commandButton icon="ui-icon-arrowreturnthick-1-w" value="Cancelar"
                                     onclick="dlg.hide()" />
                </div>
                <p:remoteCommand name="addPessoa" update="@this, :tabView:protocolo:interessado" 
                                 action="#{managerProtocolo.cliente(managerPessoa.pessoa)}"/>  
            </h:form>
        </p:tab>
    </p:tabView>
</ui:composition>